package org.dept.service;

import org.dept.pojo.Dept;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;

//服务熔断： 服务端 某个超时或者异常，一起熔断，就像保险丝
//服务降级： 客服端 从整体网站请求负载考虑，当某个服务熔断或者关闭之后，
//          服务将不再被调用，此时在客户端，我们可以准备一个FallbackFactory
//          返回一个默认的值（缺省值），整体的服务水平下降了，但是至少能用，比直接挂掉强
//调用降级类fallbackFactory=DeptClientServiceFallbackFactory.class
@Component
@FeignClient(value = "PROVIDER-DEPT",fallbackFactory = DeptClientServiceFallbackFactory.class)
public interface DeptClientService {
    @GetMapping("/dept/get/{id}")
    public Dept select(@PathVariable("id") int id);

    @GetMapping("/dept/dList")
    public List<Dept> dList();

    @GetMapping("/dept/add")
    public int addDept(Dept dept);
}
